One of the primary benefits provided by the Internet is widespread access to data maintained by data providers in centralized databases. For example, a wholesaler of retail goods may provide retail outlets access to its inventory database or a public library may provide borrowers access to its online card catalog. Users at the retail outlets can access the database to determine product attributes such as product descriptions, product availability, and product pricing. Library borrowers could determine the availability of books. Such databases can be very large, which presents obstacles to effective data distribution. With large databases, a policy decision must be made by the data provider as to how to deliver data to the user over the Internet.
One approach to providing data to a user is by allowing the user to download the entire contents of the database to the user's local computer. However, this approach has various problems. One problem is that the user must have system resources capable of processing the large database with acceptable performance. Some large databases are simply too large to permit the user to use the database with ease and efficiency and may ultimately deter users from exploiting the benefits of the database. Another problem with this approach is that the user may not have a tool for effectively browsing the database after it has been downloaded. In this case, the database becomes a burdensome and unwieldy mass of data reducing its usefulness to the user. Network bandwidth is another problem with this approach. Downloading data over a conventional modem takes an unacceptably long time.
Another common approach is to deliver the data to the user in batches. With this approach, the data provider will partition the data into batches and deliver the batches, one at a time, to the end user. The end user is, thus, provided with a manageable portion of the database. Maintaining a partitioned database can be difficult in applications where the database must be regularly updated or modified. Moreover, in order to permit the user to browse between adjacent batches, the data provider must maintain a record as to which batch the user has accessed. This approach also requires that the data provider maintain records of each user's activity with respect to the database. That is, the data provider must maintain a record of the user's “state” or location within the database.
There is a need in the art for a means for providing users with remote access (e.g., via the Internet) that is more efficient and more effective than the above-described existing approaches. The system should provide good end-user performance by delivering batches (i.e., partial data sets) to a user and should provide good server performance by eliminating the necessity to maintain partitioned databases and/or state information on the user. The system should also be capable of being implemented without significant modifications of existing databases.